本发明公开了一种基于Flex的集合框架,属于计算机技术领域。所述集合框架包括:集合框架Collection系统;所述Collection系统,用于提供通用的数据操作和迭代器。本发明通过Collection系统提供迭代器这种能保证映射顺序的列表,增加了Flex的集合框架的功能;并且Collection系统可以提供通用的数据操作,易于扩展。
1.一种基于Flex的集合框架,其特征在于,所述集合框架包括:集合框架Collection系统;所述Collection系统,用于提供通用的数据操作和迭代器。
2.根据权利要求1所述的基于Flex的集合框架,其特征在于,所述Collection系统包括:迭代器Iterator接口模块、列表迭代器ListIterator接口模块、迭代器持有Iterable接口模块、Collection接口模块和列表List接口模块;所述Iterator接口模块,用于提供单向迭代器,实现以迭代方式逐个访问所述Collection系统中的各个元素,并从所述Collection接口模块中删除指定的元素;所述ListIterator接口模块,用于继承所述Iterator接口模块,提供双向迭代器;所述Iterable接口模块,用于持有所述Iterator接口模块提供的单向迭代器;所述Collection接口模块,用于继承所述Iterable接口模块,并提供通用的数据操作;所述List接口模块,用于继承所述Collection接口模块,提供允许重复的有序集合和面向位置的操作。
3.根据权利要求2所述的基于Flex的集合框架,其特征在于,所述Collection系统还包括:Itr类模块、第一Listxa0Itr类模块、第二Listxa0Itr类模块、抽象集合框架Abstractcollection抽象类模块、检测集合框架CheckedCollection类模块、抽象基址列表Abstractba
selist抽象类模块和检测列表CheckedList类模块;所述Itr类模块,用于实现所述Iterator接口模块的单向迭代器;所述第一Listxa0Itr类模块,用于继承所述Itr类模块,并实现所述ListIterator接口模块的双向迭代器;所述第二Listxa0Itr类模块,用于实现重写的双向迭代器;所述Abstractcollection抽象类模块,用于提供所述Collection接口模块的骨干实现;所述CheckedCollection类模块,用于提供强类型的Collection容器实现;所述Abstractba
selist抽象类模块,用于继承所述Abstractcollection抽象类模块,提供所述List接口模块的骨干实现,持有所述Itr类模块和所述第一Listxa0Itr类模块,通过所述Itr类模块和所述第一Listxa0Itr类模块,为List容器提供单向迭代和双向迭代功能;所述CheckedList类模块,用于继承所述CheckedCollection类模块,并提供强类型的List容器实现。
4.根据权利要求3所述的基于Flex的集合框架,其特征在于,所述Collection系统还包括:空列表Emptylist类模块、数组列表Arraylist类模块和链表l
inkedList类模块;所述Emptylist类模块,用于继承所述Abstractba
selist抽象类模块;所述Arraylist类模块,用于继承所述Abstractba
selist抽象类模块;所述l
inkedList类模块,用于继承所述Abstractba
selist抽象类模块,实现双向链表。
5.根据权利要求1-4中任意一项权利要求所述的基于Flex的集合框架,其特征在于,所述集合框架还包括:映射Map系统;所述Map系统,用于实现键到值的映射。
6.根据权利要求5所述的基于Flex的集合框架,其特征在于,所述Map系统包括:Map接口模块和登录映射MapEntry接口模块;所述Map接口模块,用于实现键到值的映射;所述MapEntry接口模块,用于对所述键和所述值进行封装。
7.根据权利要求6所述的基于Flex的集合框架,其特征在于,所述Map系统还包括:MapEntry类模块、检测映射CheckedMap类模块、空映射EmptyMap类模块、哈希映射HashMap类模块和链映射l
inkedMap类模块;所述MapEntry类模块,用于实现所述MapEntry接口模块;所述CheckedMap类模块,用于支持强类型的实现;所述EmptyMap类模块,用于实现所述Map接口模块;所述HashMap类模块,用于持有所述MapEntry类模块,并实现所述Map接口模块;所述l
inkedMap类模块,用于持有所述MapEntry类模块,实现所述Map接口模块,并支持有序映射。
8.根据权利要求4所述的基于Flex的集合框架,其特征在于,所述集合框架还包括:Map系统;所述Map系统包括:Map接口模块,用于实现键到值的映射;MapEntry接口模块,用于对所述键和所述值进行封装;MapEntry类模块,用于实现所述MapEntry接口模块;CheckedMap类模块,用于支持强类型的实现;EmptyMap类模块,用于实现所述Map接口模块;HashMap类模块,用于持有所述MapEntry类模块和所述ArrayList类模块,并实现所述Map接口模块;l
inkedMap类模块,用于持有所述MapEntry类模块和所述ArrayList类模块,实现所述Map接口模块,并支持有序映射。
9.根据权利要求8所述的基于Flex的集合框架,其特征在于,所述集合框架还包括:Colletions工具类设备;所述Colletions工具类设备,用于持有所述CheckedCollection类模块、所述CheckedList类模块、所述EmptyList类模块、所述EmptyMap类模块和所述CheckedMap类模块,并实现对集合框架进行排序。
技术领域本发明涉及计算机技术领域,特别涉及一种基于Flex的集合框架。
背景技术随着互联网技术的发展,具有高度互动性和丰富用户体验的RIA(RichInternetxa0Application,富互联网应用)由于可以满足Web浏览者更高的、全方位的体验要求而得到了广泛的应用,而可以实现RIA的一种技术是Flex。Flex试图通过提供一个程序员们已经熟知的工作流和编程模型,让程序员比从前更快更简单地开发动画及RIA应用。在多层式开发模型中,Flex应用属于表现层。Flex的语言和文件结构也试图把应用程序的逻辑从设计中分离出来然而在实现本发明的过程中,发明人发现现有技术至少存在以下问题:Flex中只提供了Array(数组)、Dictio
nary(字典)等简单的实现,可扩展性差。
发明内容为了提高Flex的可扩展性,本发明实施例提供了一种基于Flex的集合框架。所述技术方案如下:一种基于Flex的集合框架,所述集合框架包括:集合框架Collection系统;所述Collection系统,用于提供通用的数据操作和迭代器。进一步地,所述Collection系统包括:迭代器Iterator接口模块、列表迭代器ListIterator接口模块、迭代器持有Iterable接口模块、Collection接口模块和列表List接口模块;所述Iterator接口模块,用于提供单向迭代器,实现以迭代方式逐个访问所述Collection系统中的各个元素,并从所述Collection接口模块中删除指定的元素;所述ListIterator接口模块,用于继承所述Iterator接口模块,提供双向迭代器;所述Iterable接口模块,用于持有所述Iterator接口模块提供的单向迭代器;所述Collection接口模块,用于继承所述Iterable接口模块,并提供通用的数据操作;所述List接口模块,用于继承所述Collection接口模块,提供允许重复的有序集合和面向位置的操作。进一步地,所述Collection系统还包括:Itr类模块、第一Listxa0Itr类模块、第二Listxa0Itr类模块、抽象集合框架Abstractcollection抽象类模块、检测集合框架CheckedCollection类模块、抽象基址列表Abstractba
selist抽象类模块和检测列表CheckedList类模块;所述Itr类模块,用于实现所述Iterator接口模块的单向迭代器;所述第一Listxa0Itr类模块,用于继承所述Itr类模块,并实现所述ListIterator接口模块的双向迭代器;所述第二Listxa0Itr类模块,用于实现重写的双向迭代器;所述Abstractcollection抽象类模块,用于提供所述Collection接口模块的骨干实现;所述CheckedCollection类模块,用于提供强类型的Collection容器实现;所述Abstractba
selist抽象类模块,用于继承所述Abstractcollection抽象类模块,提供所述List接口模块的骨干实现,持有所述Itr类模块和所述第一Listxa0Itr类模块,通过所述Itr类模块和所述第一Listxa0Itr类模块,为List容器提供单向迭代和双向迭代功能;所述CheckedList类模块,用于继承所述CheckedCollection类模块,并提供强类型的List容器实现。进一步地,所述Collection系统还包括:空列表Emptylist类模块、数组列表Arraylist类模块和链表l
inkedList类模块;所述Emptylist类模块,用于继承所述Abstractba
selist抽象类模块;所述Arraylist类模块,用于继承所述Abstractba
selist抽象类模块;所述l
inkedList类模块,用于继承所述Abstractba
selist抽象类模块,实现双向链表。进一步地,所述集合框架还包括:映射Map系统;所述Map系统,用于实现键到值的映射。进一步地,所述Map系统包括:Map接口模块和登录映射MapEntry接口模块;所述Map接口模块,用于实现键到值的映射;所述MapEntry接口模块,用于对所述键和所述值进行封装。进一步地,所述Map系统还包括:MapEntry类模块、检测映射CheckedMap类模块、空映射EmptyMap类模块、哈希映射HashMap类模块和链映射l
inkedMap类模块;所述MapEntry类模块,用于实现所述MapEntry接口模块;所述CheckedMap类模块,用于支持强类型的实现;所述EmptyMap类模块,用于实现所述Map接口模块;所述HashMap类模块,用于持有所述MapEntry类模块,并实现所述Map接口模块;所述l
inkedMap类模块,用于持有所述MapEntry类模块,实现所述Map接口模块,并支持有序映射。进一步地,所述集合框架还包括:Map系统;所述Map系统包括:Map接口模块,用于实现键到值的映射;MapEntry接口模块,用于对所述键和所述值进行封装;MapEntry类模块,用于实现所述MapEntry接口模块;CheckedMap类模块,用于支持强类型的实现;EmptyMap类模块,用于实现所述Map接口模块;HashMap类模块,用于持有所述MapEntry类模块和所述ArrayList类模块,并实现所述Map接口模块;l
inkedMap类模块,用于持有所述MapEntry类模块和所述ArrayList类模块,实现所述Map接口模块,并支持有序映射。进一步地,所述集合框架还包括:Colletions工具类设备;所述Colletions工具类设备,用于持有所述CheckedCollection类模块、所述CheckedList类模块、所述EmptyList类模块、所述EmptyMap类模块和所述CheckedMap类模块,并实现对集合框架进行排序。本发明实施例提供的技术方案的有益效果是:通过Collection系统提供迭代器这种能保证映射顺序的列表,增加了Flex的集合框架的功能;并且Collection系统可以提供通用的数据操作,易于扩展。且Collection系统和Map系统还可以提供对强类型的支持,进一步地增加了Flex的集合框架的功能。另外,基于Flex的集合框架是一套通用的基础集合框架,使用方便,易于扩展,可以在本发明实施例所述的基于Flex的集合框架的基础方便、简单地扩展集合类。
附图说明图1是本发明实施例1提供的一种基于Flex的集合框架的结构示意图;图2是本发明实施例1提供的另一种基于Flex的集合框架的结构示意图;图3是本发明实施例1提供的又一种基于Flex的集合框架的结构示意图;图4是本发明实施例2提供的一种基于Flex的集合框架的结构示意图。
具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。实施例1参见图1,本发明实施例提供了一种基于Flex的集合框架,包括:集合框架Collection系统;Collection系统,用于提供通用的数据操作和迭代器。其中,Collection系统包括:迭代器Iterator接口模块101、列表迭代器ListIterator接口模块102、迭代器持有Iterable接口模块103、Collection接口模块104和列表List接口模块105;Iterator接口模块101,用于提供单向迭代器,实现以迭代方式逐个访问所述Collection系统中的各个元素,并从Collection接口模块104中删除指定的元素;ListIterator接口模块102,用于继承Iterator接口模块101,提供双向迭代器;参见图1,ListIterator接口模块102与Iterator接口模块101之间的继承关系用箭头“→”表示,即本发明实施例中用“→”表示模块之间的继承关系,其它类似地方不再一一赘述。Iterable接口模块103,用于持有Iterator接口模块101提供的单向迭代器;参见图1,Iterable接口模块103与Iterator接口模块101之间的持有关系用箭头“--→”表示,即本发明实施例中用“--→”表示模块之间的持有关系,其它类似地方不再一一赘述。Collection接口模块104,用于继承Iterable接口模块103,并提供通用的数据操作;List接口模块105,用于继承Collection接口模块104,提供允许重复的有序集合和面向位置的操作。进一步地,Collection系统还包括:Itr类模块106、第一Listxa0Itr类模块107、第二Listxa0Itr类模块108、抽象集合框架Abstractcollection抽象类模块109、检测集合框架CheckedCollection类模块110、抽象基址列表Abstractba
selist抽象类模块111和检测列表CheckedList类模块112;Itr类模块106,用于实现Iterator接口模块101的单向迭代器;参见图1,Iterable接口模块106与Iterator接口模块101之间的实现关系用箭头“--→”表示,即本发明实施例中用“--→”表示模块之间的实现关系,其它类似地方不再一一赘述。第一Listxa0Itr类模块107,用于继承Itr类模块106,并实现ListIterator接口模块102的双向迭代器;第二Listxa0Itr类模块108,用于实现重写的双向迭代器;Abstractcollection抽象类模块109,用于提供Collection接口模块104的骨干实现;CheckedCollection类模块110,用于提供强类型的Collection容器实现;Abstractba
selist抽象类模块111,用于继承Abstractcollection抽象类模块109,提供List接口模块105的骨干实现,持有Itr类模块106和第一Listxa0Itr类模块107,通过Itr类模块106和第一Listxa0Itr类模块107,为List容器提供单向迭代和双向迭代功能;CheckedList类模块112,用于继承CheckedCollection类模块110,并提供强类型的List容器实现。进一步地,Collection系统还包括:空列表Emptylist类模块113、数组列表Arraylist类模块114和链表l
inkedList类模块115;Emptylist类模块113,用于继承Abstractba
selist抽象类模块111;Arraylist类模块114,用于继承Abstractba
selist抽象类模块111;l
inkedList类模块115,用于继承Abstractba
selist抽象类模块111,实现双向链表。进一步地,参见图2,集合框架还包括:映射Map系统;Map系统,用于实现键到值的映射。其中,Map系统包括:Map接口模块201和登录映射MapEntry接口模块202;Map接口模块201,用于实现键到值的映射;MapEntry接口模块202,用于对键和值进行封装。进一步地,Map系统还包括:MapEntry类模块203、检测映射CheckedMap类模块204、空映射EmptyMap类模块205、哈希映射HashMap类模块206和链映射l
inkedMap类模块207;MapEntry类模块203,用于实现MapEntry接口模块202;CheckedMap类模块204,用于支持强类型的实现;EmptyMap类模块205,用于实现Map接口模块201;HashMap类模块206,用于持有MapEntry类模块203,并实现Map接口模块201;l
inkedMap类模块207,用于持有MapEntry类模块203,实现Map接口模块201,并支持有序映射。进一步地,在图1的基础上,参见图3,集合框架还包括:Map系统;Map系统包括:Map接口模块201,用于实现键到值的映射;MapEntry接口模块202,用于对键和值进行封装;MapEntry类模块203,用于实现MapEntry接口模块202;CheckedMap类模块204,用于支持强类型的实现;EmptyMap类模块205,用于实现Map接口模块201;HashMap类模块206,用于持有MapEntry类模块203和Arraylist类模块114,并实现Map接口模块201;l
inkedMap类模块207,用于持有MapEntry类模块203和Arraylist类模块114,实现Map接口模块201,并支持有序映射。进一步地,集合框架还包括:Colletions工具类设备301;Colletions工具类设备301,用于持有CheckedCollection类模块110、CheckedList类模块112、Emptylist类模块113、EmptyMap类模块205和CheckedMap类模块204,并实现对集合框架进行排序。本发明实施例所述的基于Flex的集合框架,Collection系统可以提供迭代器这种能保证映射顺序的列表,增加了Flex的集合框架的功能;并且Collection系统可以提供通用的数据操作,易于扩展。且Collection系统和Map系统还可以提供对强类型的支持,进一步地增加了Flex的集合框架的功能。另外,基于Flex的集合框架是一套通用的基础集合框架,使用方便,易于扩展,可以在本发明实施例所述的基于Flex的集合框架的基础方便、简单地扩展集合类。实施例2参见图4,本发明实施例提供了一种基于Flex的集合框架,该基于Flex的集合框架包括:Collection系统、Map系统和Colletions工具类设备601。Collection系统包括:Iterator(迭代器)接口模块401、ListIterator(列表迭代器)接口模块402、Iterable(迭代器持有)接口模块403、Collection接口模块404、List(列表)接口模块405、Itr类模块406、第一Listxa0Itr类模块407、第二Listxa0Itr类模块408、Abstractcollection(抽象集合框架)抽象类模块409、CheckedCollection(检测集合框架)类模块410、Abstractba
selist(抽象基址列表)抽象类模块411、CheckedList(检测列表)类模块412、Emptylist(空列表)类模块413、Arraylist(数组列表)类模块414和l
inkedList(链表)类模块415。Map系统包括:Map接口模块501、MapEntry(登录映射)接口模块502、MapEntry类模块503、CheckedMap(检测映射)类模块504、EmptyMap(空映射)类模块505、HashMap(哈希映射)类模块506和l
inkedMap(链映射)类模块507。Iterator接口模块401,用于提供单向迭代器,实现以迭代方式逐个访问所述Collection系统中的各个元素,并从Collection接口模块404中删除指定的元素。Iterator接口模块401具体可以采用下面的形式实现:publicxa0interfacexa0Iterator{functionxa0hasNext():Boolean;xa0xa0//返回true如果iteration还有更多的元素functionxa0next():Object;xa0xa0//返回在iteration中的下一个元素functionxa0remove():void;xa0xa0//从迭代器指向的集合中移除迭代器返回的最后一个元素(可选操作)xa0xa0}ListIterator接口模块402,用于继承Iterator接口模块401,提供双向迭代器。其中,ListIterator接口模块402通过继承Iterator接口模块401,可以用于提供双向迭代器,可以支持添加或更改Collection系统底层集中的元素。参见图4,ListIterator接口模块402与Iterator接口模块401之间的继承关系用箭头“→”表示,即本发明实施例中用“→”表示模块之间的继承关系,其它类似地方不再一一赘述。ListIterator接口模块402具体可以采用下面的形式实现:publicxa0interfacexa0ListIteratorxa0extendsxa0Iterator{functionxa0hasPreviou():Boolean;xa0//如果以反向遍历列表,列表迭代器有多个元素,则返回truefunctionxa0previous():Object;//返回列表中的前一个元素。可以重复调用此方法来迭代列表functionxa0nextIndex():int;//返回对next的后续调用所返回元素的索引functionxa0previousIndex():int;//返回对previous的后续调用所返回元素的索引functionxa0setData(obj:Object):void;//用指定元素替换next或previous返回的最后一个元素functionxa0addData(obj:Object):void;xa0//将指定的元素插入列表}Iterable接口模块403,用于持有Iterator接口模块401提供的单向迭代器。其中,Iterable接口模块403持有Iterator接口模块401提供的单向迭代器,即通过Iterable接口模块403也可以访问到迭代器。本发明实施例中Iterable接口模块403可以返回一个在一组元素上进行迭代的单向迭代器。参见图4,Iterable接口模块403与Iterator接口模块401之间的持有关系用箭头“--→”表示,即本发明实施例中用“--→”表示模块之间的持有关系,其它类似地方不再一一赘述。Collection接口模块404,用于继承Iterable接口模块403,并提供通用的数据操作。其中,Collection接口模块404是集合类模块的基类模块,Collection接口模块404通过继承Iterable接口模块403可以持有Iterator接口模块401提供的单向迭代器;并且,可以提供如:size()方法、isEmpty()方法等通用的数据操作。Collection接口模块404具体可以采用下面的形式实现:publicxa0interfacexa0Collectionxa0extendsxa0Iterable{functionxa0size():int;//获取集合的大小functionxa0isEmpty():Boolean;//判断当前集合是否为空functionxa0co
ntains(object:Object):Boolean;//如果此collection包含指定的元素,则返回truefunctionxa0toArray():Array;//返回包含此collection中所有元素的数组;返回的数组将是′′安全的′′,因为此collection并不维护对返回数组的任何引用functionxa0add(object:Object):Boolean;xa0xa0//往集合里添加元素functionxa0remove(object:Object):Boolean;//从集合中移除指定元素,如果存在的话functionxa0co
ntainsAll(c:Collection):Boolean;xa0xa0//判断集合c中的元素是否都在该集合中functionxa0addAll(c:Collection):Boolean;xa0xa0//把集合c中的元素都添加到本集合中,如果同样的元素则不重复添加functionxa0removeAll(c:Collection):Boolean;//移除此c中那些也包含在指定collection中的所有元素(可选操作)functionxa0retainAll(c:Collection):Boolean;//删除那些在本集合中有但在集合c中没有的元素xa0functionxa0clear():void;//清空集合functionxa0toString():String;}List接口模块405,用于继承Collection接口模块404,提供允许重复的有序集合和面向位置的操作。其中,List接口模块405可以提供常用的如getData,removeData等列表操作。List接口模块405具体可以采用下面的形式实现:publicxa0interfacexa0Listxa0extendsxa0Collection{functionxa0getData(index:int):Object;//返回容器中第index个元素functionxa0setData(index:int,element:Object):Object;//将容器中的第index个元素替换为元素elemenfunctionxa0addData(index:int,element:Object):void;//在第index处添加一个元素functionxa0removeData(index:int):Object;//删除第index个元素,如果该元素存在。functionxa0indexOf(o:Object):int;//返回元素o在该容器中的位置(从容器头开始找,找到第一个即返回)functionxa0lastIndexOf(o:Object):int;//返回找到的最后一个元素o的位置functionxa0listIterator():ListIterator;//返回列表中元素的列表迭代器(以正确的顺序)functionxa0listIteratorWithStartIndex(start:int):ListIterator;xa0xa0//返回列表中从<code>start</code>个元素起的列表迭代器(以正确的顺序)}Itr类模块406,用于实现Iterator接口模块401的单向迭代器。其中,Itr类模块406是Abstractba
selist抽象类模块411的内部类。并且,参见图4,Iterable接口模块406与Iterator接口模块401之间的实现关系用箭头“--→”表示,即本发明实施例中用“--→”表示模块之间的实现关系,其它类似地方不再一一赘述。第一Listxa0Itr类模块407,用于继承Itr类模块406,并实现ListIterator接口模块402的双向迭代器。其中,第一Listxa0Itr类模块407是Abstractba
selist抽象类模块411的内部类。第二Listxa0Itr类模块408,用于实现重写的双向迭代器。其中,第二Listxa0Itr类模块408是l
inkedList类模块415的内部类。第二ListItr类模块408为特定的l
inkedList重写的双向迭代器实现,主要是为了提高l
inkedList类模块415的迭代效率。Abstractcollection抽象类模块409,用于提供Collection接口模块404的骨干实现。其中,Abstractcollection抽象类模块409通过提供如:toArray方法、remove方法等Collection接口模块404的骨干实现,可以最大限度地减少实现Collection接口模块404所需的工作。CheckedCollection类模块410,用于提供强类型的Collection容器实现。其中,CheckedCollection类模块410是Colletions工具类设备601的内部类。Abstractba
selist抽象类模块411,用于继承Abstractcollection抽象类模块409,提供List接口模块405的骨干实现,持有Itr类模块406和第一Listxa0Itr类模块407,通过Itr类模块406和第一Listxa0Itr类模块407,为List容器提供单向迭代和双向迭代功能。其中,本发明实施例中,迭代器的具体实现在Abstractba
selist抽象类模块411中,Abstractba
selist抽象类模块411提供单向迭代器和双向迭代器两种迭代器的实现。单向迭代器通过内部类实现,Itr类模块406是Abstractba
seList单向迭代器内部类,Itr类模块406实现Iterator接口模块401,Itr对象通过持有List对象来遍历集合。双向迭代器也由内部类实现,第一Listxa0Itr类模块407是Abstractba
seList双向迭代器内部类,第一Listxa0Itr类模块407继承了单向迭代器Itr并且实现了双向接口ListIterator,ListIterator对象通过持有当前的List对象来前后遍历集合。并且,Abstractba
selist抽象类模块411继承Abstractcollection抽象类模块409、实现List接口模块405,提供List接口模块的骨干实现,从而最大限度地减少了实现由“随机访问”数据存储(如数组)支持的接口模块所需的工作。CheckedList类模块412,用于继承CheckedCollection类模块410,并提供强类型的List容器实现。其中,CheckedList类模块412是Colletions工具类设备601的内部类。Emptylist类模块413,用于继承Abstractba
selist抽象类模块411。Arraylist类模块414,用于继承Abstractba
selist抽象类模块411。l
inkedList类模块415,用于继承Abstractba
selist抽象类模块411,实现双向链表。其中,l
inkedList类模块414是双向链表的实现,为了提高迭代效率,对双向迭代器进行了重写,通过持有当前双向链表,直接定位前后节点。Emptylist类模块413、Arraylist类模块414和l
inkedList类模块415是具体的List实现。Map接口模块501,用于实现键(key)到值(value)的映射。其中,Map接口模块501依赖于Collection接口模块404,允许Map接口模块501返回当前映射的一个数组表。Map接口模块501具体可以采用下面的形式实现:publicxa0interfacexa0Map{functionxa0put(key:Object,value:Object):Object;//向容器里添加元素functionxa0putAll(map:Map):void;//向容器中添加一堆元素functionxa0remove(key:Object):Object;//通过key删除其容器中对应的元素functionxa0size():int;//返回容器的大小functionxa0isEmpty():Boolean;//判断容器是否为空functionxa0co
ntainsKey(key:Object):Boolean;//判断容器中是否有键位key的元素functionxa0co
ntainsValue(value:Object):Bxa0oolean;//判断容器中是否有值为value的元素functionxa0getKeys():Collection;//获取容器中所有的键functionxa0getValues():Collection;//获取容器中所有的值functionxa0getKey(value:Object):Object;//返回此映射中映射到指定值的键,如果存在一个值对应多个键的情况返回找寻到的第一个键functionxa0getValue(key:Object):Object;//通过key返回对应的值functionxa0clear():void;//清空容器functionxa0toxa0String():String;}MapEntry接口模块502,用于提供迭代器。MapEntry的接口模块502具体可以采用下面的形式实现:publicxa0interfacexa0IMapEntry{functionxa0setKey(key:Object):void;//设置键functionxa0getKey():Object;//获取键functionxa0setValue(value:Object):void;//设置值functionxa0getValue():Object;//获取值}MapEntry类模块503,用于实现MapEntry接口模块502。CheckedMap类模块504,用于支持强类型的实现。EmptyMap类模块505,用于实现Map接口模块501。HashMap类模块506,用于持有MapEntry类模块503和Arraylist类模块414,并实现Map接口模块501。l
inkedMap类模块507,用于持有MapEntry类模块503和Arraylist类模块414,实现Map接口模块501,并支持有序映射。Colletions工具类设备601,用于持有CheckedCollection类模块410、CheckedList类模块412、Emptylist类模块413、EmptyMap类模块505和CheckedMap类模块504,并实现对集合框架进行排序。其中,在Collections工具类模块中实现强类型容器时,需要传递一个具体的容器实例给Collections工具类模块中的checkList方法、checkCollection方法或checkMap方法,相应地checkList方法、checkCollection方法或checkMap方法返回支持强类型的容器。实现流程如下:创建A容器实例;将A容器实例以及要检查的类型作为参数传递给Collections工具类的checkList方法、checkCollection方法或checkMap方法;相应地checkList方法、checkCollection方法或checkMap方法返回持有了A容器并且具有类型检查的B容器给用户;用户往A容器塞数据(其实是通过B容器往A容器中塞数据);B容器进行类型检查,如果检查不通过,抛出异常;如果检查通过,将数据添加进真正的A容器。实现原理是:在A容器实例上加了一层B容器,在B层容器中加上了强类型的检查,Collections工具类模块返回的是B容器的实例,当用户以为往A容器中添加对象的时候,其实是往B容器中添加,再由B容器经过类型检查往A容器中添加。需要说明的是,本发明实施例所述的基于Flex的集合框架是一种通用基础数据结构,用户可以像直接引入其他SWC包一样直接引入本发明实施例的基于Flex的集合框架,使用简单,且提供了各种集合类库的支持。下面是使用案例://简单实用varxa0map:Map=newxa0HashMap();varxa0list:List=newxa0ArrayList();//强类型支持,第一个参数为List容器,第二个参数为强类型。varxa0list:List=newxa0ArrayList();//首先创建一个容器实例,将容器实例和要检查的类型作为参数传递给Collections.checkXXX方法(checkList方法、checkCollection方法和checkMap方法中的一种),Collections.checkXXX方法返回一个具有同样类型的容器。varxa0l:List=Collections.checkList(list,Class);本发明实施例所述的基于Flex的集合框架,Collection系统可以提供迭代器这种能保证映射顺序的列表,增加了Flex的集合框架的功能,并且Collection系统可以提供通用的数据操作,易于扩展;且Collection系统和Map系统还可以提供对强类型的支持,进一步地增加了Flex的集合框架的功能;另外,基于Flex的集合框架是一套通用的基础集合框架,使用方便,易于扩展,可以在本发明实施例所述的基于Flex的集合框架的基础方便、简单地扩展集合类。以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。